docs: def run_process(workflow, *, n_processes, registry,
                  verbose=False, jobdirs=False,
                  init=None, finish=None, deref=False):
      """Run the workflow using a number of new python processes. Use this
      runner to test the workflow in a situation where data serial
      is needed.
  
      :param workflow:
          The workflow.
      :type workflow: `Workflow` or `PromisedObject`
  
      :param n_processes:
          Number of processes to start.
  
      :param registry:
          The serial registry.
  
      :param verbose:
          Request verbose output on worker side
  
      :param jobdirs:
          Create a new directory for each job to prevent filename collision.(NYI)
  
      :param init:
          An init function that needs to be run in each process before other jobs
          can be run. This should be a scheduled function returning True on
          success.
  
      :param finish:
          A function that wraps up when the worker closes down.
  
      :param deref:
          Set this to True to pass the result through one more encoding and
          decoding step with object derefencing turned on.
      :type deref: bool
  
      :returns: the result of evaluating the workflow
      :rtype: any
      """
      workers = {}
      for i in range(n_processes):
          new_worker = process_worker(registry, verbose, jobdirs, init, finish)
          workers['worker {0:2}'.format(i)] = new_worker
  
      worker_names = list(workers.keys())
  
      def random_selector(_):
          """Selects a worker to send a job to at random."""
          return random.choice(worker_names)
  
      master_worker = hybrid_threaded_worker(random_selector, workers)
      result = Scheduler().run(master_worker, get_workflow(workflow))
  
      for worker in workers.values():
          try:
              worker.sink().send(EndOfQueue)
          except StopIteration:
              pass
  
  #        w.aux.join()
  
      if deref:
          return registry().dereference(result, host='localhost')
      else:
          return result