class_docstr: Class for managing threads which run concurrent Spark jobs.
  
  This maintains a primary dispatcher thread, plus 1 thread per Hyperopt trial.
  Each trial's thread runs 1 Spark job with 1 task.
code: def _begin_trial_run(trial):
      trial["state"] = base.JOB_STATE_RUNNING
      now = coarse_utcnow()
      trial["book_time"] = now
      trial["refresh_time"] = now
      logger.debug("trial task {tid} started".format(tid=trial["tid"]))
  
imports: import copy
  import os
  import threading
  import time
  import timeit
  import traceback
  from hyperopt import base, fmin, Trials
  from hyperopt.base import validate_timeout, validate_loss_threshold, STATUS_OK
  from hyperopt.utils import coarse_utcnow, _get_logger, _get_random_id
label_desc: Use image node_id 3 for calling the _SparkFMinState obj's underlying member method code with example usage: obj._begin_trial_run(trial) without return types