def METHOD_NAME(obj, resolver, **kw):  # pylint: disable=unused-argument
    def get_partition(obj_id):
        client = vineyard.connect()
        df = client.get(obj_id)
        return dd.from_pandas(df, npartitions=1)
    meta = obj.meta
    num = int(meta['partitions_-size'])
    dask_client = Client(kw['dask_scheduler'])
    futures = []
    for i in range(num):
        df = meta.get_member('partitions_-%d' % i)
        instance_id = int(df.meta['instance_id'])
        futures.append(
            # we require the 1-on-1 alignment of vineyard instances and dask workers.
            # vineyard_sockets maps vineyard instance_ids into ipc_sockets, while
            # dask_workers maps vineyard instance_ids into names of dask workers.
            dask_client.submit(
                get_partition, df.meta.id, workers={kw['dask_workers'][instance_id]}
            )
        )
    dfs = dask_client.gather(futures)
    return dd.concat(dfs, axis=0)