class_docstr: A manager for parallel execution of jobs.
  
  A job must be of type :class:`Job` which produces a :class:`Result`
  object upon successful completion. The scheduler maintains a job and
  result queues.
  
  Notes:
      This class should be used as a context manager.
docstr: Clean up subprocesses on object deletion.
  
  Close the queues and join all subprocesses before the object is deleted.
docstr_tok: ["Clean","up","subprocesses","on","object","deletion",".","Close","the","queues","and","join","all","subprocesses","before","the","object","is","deleted","."]
code: def __del__(self):
      """Clean up subprocesses on object deletion.
  
      Close the queues and join all subprocesses before the object is deleted.
      """
      if not self._is_queue_closed:
          self.exit()
      if self._servant.is_alive():
          self._servant.terminate()
  
file_path: hypertunity/hypertunity/scheduling/scheduler.py
imports: import multiprocessing
  import time
  from typing import List
  import joblib
  from hypertunity import utils
  from .jobs import Job, Result
label_desc: Use image node_id 2 for calling the Scheduler obj's underlying member method code with example usage: obj.__del__() without return types