def METHOD_NAME(dask_array):
    """Generate a list of NumPy slice objects for a dask array
    Parameters
    ----------
    dask_array : dask array
    Returns
    -------
    slice_list : list of NumPy slice objects
    Examples
    --------
    >>> import dask.array as da
    >>> data = da.random.random((64, 64, 100, 100), chunks=(8, 8, 100, 100))
    >>> import pyxem.utils.lazy_tools as lt
    >>> slice_list = lt._get_dask_chunk_slice_list(data)
    """
    chunk_list_dim = dask_array.shape
    if (len(chunk_list_dim) == 2) or (len(chunk_list_dim) > 4):
        raise NotImplementedError("dask_array must have either 3 or 4 dimensions")
    temp_slice_list = []
    for chunk_list in dask_array.chunks[:-2]:
        temp_slice_dim = []
        current_v = 0
        for chunk in chunk_list:
            temp_slice_dim.append((current_v, current_v + chunk))
            current_v += chunk
        temp_slice_list.append(temp_slice_dim)
    slice_list = []
    if len(temp_slice_list) == 1:
        for slice_t in temp_slice_list[0]:
            temp_slice = np.s_[slice_t[0] : slice_t[1], :, :]
            slice_list.append(temp_slice)
    elif len(temp_slice_list) == 2:
        for slice_t0 in temp_slice_list[0]:
            for slice_t1 in temp_slice_list[1]:
                temp_slice = np.s_[
                    slice_t0[0] : slice_t0[1], slice_t1[0] : slice_t1[1], :, :
                ]
                slice_list.append(temp_slice)
    return slice_list