Redirect in form handler causing form to be submitted twice

You can fix it through Session. try

function vv_process_profile_forms() {
    session_start();

    if ( isset( $_POST['action'] ) && $_POST['action'] == 'profile-form' ) {

        if ( ! isset( $_SESSION['form-submit'] ) ) {

            // form processing code here

            $_SESSION['form-submit'] = 1;

            $redirect_page = get_permalink( 586 );
            wp_redirect( $redirect_page );
            exit;

        } else {

            unset( $_SESSION['form-submit'] );
        }
    }
}
add_action( 'init','vv_process_profile_forms' );