'Fit a series of independent estimators to the dataset.
Parameters
X : array, shape (n_samples, nd_features, n_tasks)
The training input samples. For each data slice, a clone estimator
is fitted independently. The feature dimension can be
multidimensional e.g.
X.shape = (n_samples, n_features_1, n_features_2, n_tasks)
y : array, shape (n_samples,) | (n_samples, n_targets)
The target values.
Returns
self : object
Return self.'

def fit(self, X, y):

    self._check_Xy(X, y)
    self.estimators_ = list()
    (parallel, p_func, n_jobs) = parallel_func(_sl_fit, self.n_jobs)
    n_jobs = min(n_jobs, X.shape[(-1)])
    estimators = parallel((p_func(self.base_estimator, split, y) for split in np.array_split(X, n_jobs, axis=(-1))))
    self.estimators_ = np.concatenate(estimators, 0)
    return self
