class_docstr: A worker manager which spawns a new thread for each worker. 
docstr: Returns true if all workers are free. 
docstr_tok: ["Returns","true","if","all","workers","are","free","."]
code: def all_workers_are_free(self):
      """Returns true if all workers are free."""
      all_are_free = True
      for wid in self.worker_ids:
          all_are_free = self._worker_is_free(wid) and all_are_free
      if all_are_free:
          return self._get_last_receive_time()
      else:
          return None
  
imports: from __future__ import print_function
  from __future__ import division
  from argparse import Namespace
  from multiprocessing import Process
  import numpy
  import os
  import pickle
  import shutil
  import time
  from .exd_utils import EVAL_ERROR_CODE
label_desc: Use image node_id 12 for calling the MultiProcessingWorkerManager obj's underlying member method code with example usage: obj.all_workers_are_free() and returns: self, None