title: Checking area of overlap between two dataframes with parallel dask GeoPandas
body: <p>I have two different GeoDataFrames: One of which contain polygon squares in a large grid. The other contains larger, and fewer, polygons.
  I wish to calculate the area of overlap within each of the grid squares with the other, larger squares.</p>
  <p>To do so, I made a simple loop method</p>
  <pre><code>for _, patch in tqdm(layer.iterrows(), total=layer.shape[0], desc=name):
      # Index of intersecting squares
      idx = joined.intersects(patch.geometry)
      intersection_polygon = joined[idx].intersection(patch.geometry)
      area_of_intersection = intersection_polygon.area
      joined.loc[idx, &quot;value&quot;] += area_of_intersection
  </code></pre>
  <p>In an attempt to speed up this method, I converted the <code>layer</code> DataFrame, which contains the larger patches to a Dask-DataFrame.</p>
  <p>I implemented it the following way:</p>
  <pre><code>def multi_area(patch, joined=None):
      # Index of intersecting squares
      idx = joined.intersects(patch.geometry)
      intersection_polygon = joined[idx].intersection(patch.geometry)
      area_of_intersection = intersection_polygon.area
      joined.loc[idx, &quot;value&quot;] += area_of_intersection
      return joined[&quot;value&quot;]
  
  layer_dask = dask_geopandas.from_geopandas(layer, npartitions=8)
  
  with ProgressBar():
      joined[&quot;value&quot;] = layer_dask.apply(multi_area, meta=joined, joined=joined, axis=1).compute(scheduler='multiprocessing')
  </code></pre>
  <p>This, however, returns the error <code> AttributeError: 'GeoDataFrame' object has no attribute 'name'</code>, and at this point I am unsure if this is the optimal way of doing it, and what I am doing wrong.</p>
  <p>The job I will be doing will have 400 million grid squares, so I am planning on batching this calculation out on smaller areas later, as I can't come up with a smarter way of doing it...</p>