Another naive question. 
Why do we have a separate MultiTaskElasticNet? If ElasticNet itself supports multitask output.
Example

    clf = MultiTaskElasticNet(alpha=0.1)
    clf.fit([[0,0], [1, 1], [2, 2]], [[0, 1], [1, 2], [2, 2]])
    MultiTaskElasticNet(alpha=0.1, copy_X=True, fit_intercept=True, l1_ratio=0.5,
              max_iter=1000, normalize=False, tol=0.0001, warm_start=False)
    clf.coef_ 
    array([[ 0.44986069,  0.4493556 ],
           [ 0.22493034,  0.2246778 ]])

    clf = ElasticNet(alpha=0.1)
    clf.fit([[0,0], [1, 1], [2, 2]], [[0, 1], [1, 2], [2, 2]]) 
    ElasticNet(alpha=0.1, copy_X=True, fit_intercept=True, l1_ratio=0.5,
        max_iter=1000, normalize=False, positive=False, precompute='auto',
        tol=0.0001, warm_start=False)