BUG: DataFrame constructor with UserList dataclass broken by upgrade to 1.1.0
- [x] I have checked that this issue has not already been reported.
- [x] I have confirmed this bug exists on the latest version of pandas.
- [ ] (optional) I have confirmed this bug exists on the master branch of pandas.

---


#### Code Sample, a copy-pastable example

```python
import dataclasses
import pandas as pd
from typing import List
from collections import UserList

@dataclasses.dataclass(frozen=True)
class MyList(UserList):
  data: List[float]


stuff = [MyList([1, 2, 3]), [4, 5, 6]]

df = pd.DataFrame(stuff)
print("No error!")
```

#### Problem description

I wrote code like this for pandas 1.0.5. When I upgraded to 1.2 my unittests started failing with `TypeError: asdict() should be called on dataclass instances`. PR https://github.com/pandas-dev/pandas/pull/27999 and issue https://github.com/pandas-dev/pandas/issues/21910 changed the behavior of the DataFrame constructor to treat `data` as all dataclasses if the first element is a dataclass. The behavior is documented but not quite what I'd like.

#### Expected Output

Admittedly a esoteric case, but I'm documenting my upgrade issuse. In this case I think checking for `is_list_like(data[0])` before `is_dataclass(data[0])` works better for me. Or maybe in hindsight from_dataclasses wasn't a bad idea.
