code: def iloc(cls, dataset, index):
          
          rows, cols = index
          scalar = False
          if isinstance(cols, slice):
              cols = [d.name for d in dataset.dimensions()][cols]
          elif np.isscalar(cols):
              scalar = np.isscalar(rows)
              cols = [dataset.get_dimension(cols).name]
          else:
              cols = [dataset.get_dimension(d).name for d in index[1]]
          if np.isscalar(rows):
              rows = [rows]
  
          data = OrderedDict()
          for c in cols:
              data[c] = dataset.data[c].compute().iloc[rows].values
          if scalar:
              return data[cols[0]][0]
          return tuple(data.values())
docs: Dask does not support iloc, therefore iloc will execute
          the call graph and lose the laziness of the operation.