class_docstr: Customized worker pool
class_docstr_tok: ["Customized","worker","pool"]
docstr: Join the close process of worker pool
docstr_tok: ["Join","the","close","process","of","worker","pool"]
code: def join(self):
      """Join the close process of worker pool"""
      for i in range(self.num_workers):
          self.process_list[i].join()
  
imports: import atexit
  import gc
  import multiprocessing
  import os
  import queue
  import sys
  import time
  import traceback
  from enum import Enum
  from ..None import utils
  from ..base import dgl_warning, DGLError
  from .None import rpc
  from .constants import MAX_QUEUE_SIZE
  from .kvstore import close_kvstore, init_kvstore
  from .role import init_role
  from .rpc_client import connect_to_server
label_desc: Use image node_id 9 for calling the CustomPool obj's underlying member method code with example usage: obj.join() without return types