code: def to_dask_cupy(futures, dtype=None, shapes=None, client=None):
      wait(futures)
  
      c = default_client() if client is None else client
      meta = [
          c.submit(_get_ary_meta, future, pure=False)
          for future in futures
      ]
  
      objs = []
      for i in range(len(futures)):
          if not isinstance(futures[i].type, type(None)):
              met_future = meta[i]
              met = met_future.result()
              obj = da.from_delayed(
                  futures[i], shape=met[0], dtype=met[1]
              )
              objs.append(obj)
  
      return da.concatenate(objs, axis=0)
  
imports: import dask.dataframe
  from functools import reduce
  from toolz import first
  from dask.distributed import default_client
  from dask.distributed import wait
  from cuml.dask.common.part_utils import _extract_partitions
  from cuml.dask.common.dask_arr_utils import validate_dask_array
  from cuml.dask.common.dask_df_utils import to_dask_cudf
  from cuml.dask.common.utils import get_client
  from dask_cudf.core import Series
  from dask.dataframe import Series
  from dask.dataframe import DataFrame
  from cudf import Series
  from cuml.internals.safe_imports import gpu_only_import_from
  from collections import OrderedDict
  from cuml.internals.memory_utils import with_cupy_rmm
  from collections.abc import Sequence
  import dask.array
  from cuml.internals.safe_imports import cpu_only_import
  import cuml.internals.logger
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 9 for calling a global function with example usage: to_dask_cupy(futures, dtype, shapes, client) and returns: da