code: def setup(dask_scheduler_file=None, rmm_pool_size=None):
      if dask_scheduler_file:
          cluster = None
          # Env var UCX_MAX_RNDV_RAILS=1 must be set too.
          initialize(
              enable_tcp_over_ucx=True,
              enable_nvlink=True,
              enable_infiniband=False,
              enable_rdmacm=False,
              # net_devices="mlx5_0:1",
          )
          client = Client(scheduler_file=dask_scheduler_file)
  
      else:
          tempdir_object = tempfile.TemporaryDirectory()
          cluster = LocalCUDACluster(
              local_directory=tempdir_object.name,
              rmm_pool_size=rmm_pool_size,
          )
          client = Client(cluster)
          # add the obj to the client so it doesn't get deleted until
          # the 'client' obj gets cleaned up
          client.tempdir_object = tempdir_object
          client.wait_for_workers(len(get_visible_devices()))
  
      Comms.initialize(p2p=True)
      return (client, cluster)
  
imports: import numpy
  import dask_cudf
  from dask.distributed import Client
  from dask_cuda import LocalCUDACluster
  from cugraph.structure.symmetrize import symmetrize_ddf
  from cugraph.dask.common.mg_utils import get_visible_devices
  from dask_cuda.initialize import initialize
  import cudf
  import cugraph
  from cugraph.dask.comms import comms
  import tempfile
  from cugraph.testing.mg_utils import generate_edgelist
label_desc: Use image node_id 13 for calling a global function with example usage: setup(dask_scheduler_file, rmm_pool_size) and returns: client,  cluster