code: def create_pool(
      groups,
      keep_alive_queue_size=1,
      num_workers=1,
      start_method="fork",
  ):
      pool = WorkerPool.from_groups(
          groups,
          keep_alive_queue_size,
          start_method=start_method,
          num_workers=num_workers,
      )
      try:
          capture_processes(pool)
          return closing(pool)
      except Exception:
          pool.close()
          raise
  
imports: from nvidia.dali._multiproc.pool import WorkerPool
  from nvidia.dali._multiproc.messages import TaskArgs, SampleRange
  from contextlib import closing
  from nvidia.dali._utils.external_source_impl import get_callback_from_source
  from nvidia.dali.types import SampleInfo
  from functools import wraps
  import numpy
  import os
  from nose.tools import with_setup
  from nose_utils import raises
  from test_pool_utils import capture_processes, setup_function, teardown_function
label_desc: Use image node_id 4 for calling a global function with example usage: create_pool(groups, keep_alive_queue_size, num_workers, start_method) and returns: closing