class_docstr: Blockwise training and ensemble voting regressor.
  
  This regressor trains on blocks / partitions of Dask Arrays or DataFrames.
  A cloned version of `estimator` will be fit *independently* on each block
  or partition of the Dask collection.
  
  Prediction is done by the *ensemble* of learned models.
  
  .. warning::
  
     Ensure that your data are sufficiently shuffled prior to training!
     If the values of the various blocks / partitions of your dataset are not
     distributed similarly, the regressor will give poor results.
  
  Parameters
  ----------
  estimator : Estimator
  
  Attributes
  ----------
  estimators_ : list of regressors
      The collection of fitted sub-estimators that are `estimator` fitted
      on each partition / block of the inputs.
  
  Examples
  --------
  >>> import dask_ml.datasets
  >>> import dask_ml.ensemble
  >>> import sklearn.linear_model
  >>> X, y = dask_ml.datasets.make_regression(n_samples=100_000,
  ...                                         chunks=10_000)
  >>> subestimator = sklearn.linear_model.LinearRegression()
  >>> clf = dask_ml.ensemble.BlockwiseVotingRegressor(
  ...     subestimator,
  ... )
  >>> clf.fit(X, y)
class_docstr_tok: ["Blockwise","training","and","ensemble","voting","regressor",".","This","regressor","trains","on","blocks","\/","partitions","of","Dask","Arrays","or","DataFrames",".","A","cloned","version","of","`","estimator","`","will","be","fit","*","independently","*","on","each","block","or","partition","of","the","Dask","collection",".","Prediction","is","done","by","the","*","ensemble","*","of","learned","models",".","..","warning",":",":","Ensure","that","your","data","are","sufficiently","shuffled","prior","to","training","!","If","the","values","of","the","various","blocks","\/","partitions","of","your","dataset","are","not","distributed","similarly",",","the","regressor","will","give","poor","results",".","Parameters","--","--","--","--","--","estimator",":","Estimator","Attributes","--","--","--","--","--","estimators_",":","list","of","regressors","The","collection","of","fitted","sub-estimators","that","are","`","estimator","`","fitted","on","each","partition","\/","block","of","the","inputs",".","Examples","--","--","--","--",">",">",">","import","dask_ml.datasets",">",">",">","import","dask_ml.ensemble",">",">",">","import","sklearn.linear_model",">",">",">","X",",","y","=","dask_ml.datasets.make_regression","(","n_samples=100_000",",","...","chunks=10_000",")",">",">",">","subestimator","=","sklearn.linear_model.LinearRegression","(",")",">",">",">","clf","=","dask_ml.ensemble.BlockwiseVotingRegressor","(","...","subestimator",",","...",")",">",">",">","clf.fit","(","X",",","y",")"]
code: def predict(self, X):
      check_is_fitted(self, attributes=["estimators_"])
      return np.average(self._predict(X), axis=1)
  
imports: import dask
  import dask.array
  import dask.dataframe
  import numpy
  import sklearn.base
  from sklearn.utils.validation import check_is_fitted
  from ..base import ClassifierMixin, RegressorMixin
  from ..utils import check_array
label_desc: Use image node_id 1 for calling the BlockwiseVotingRegressor obj's underlying member method code with example usage: obj.predict(X) and returns: np