Fix regression in setitem when expanding DataFrame with specific column name format
- [x] closes #39010
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

We obviously want cast to object if value is string.
Alternatively, I suppose that `is_bool_dtype` should not raise an error on this:

```
In [97]: pd.api.types.is_bool_dtype('0 - Name')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-97-c990eff26eac> in <module>
----> 1 pd.api.types.is_bool_dtype('0 - Name')

~/scipy/pandas/pandas/core/dtypes/common.py in is_bool_dtype(arr_or_dtype)
   1395         return False
   1396     try:
-> 1397         dtype = get_dtype(arr_or_dtype)
   1398     except TypeError:
   1399         return False

~/scipy/pandas/pandas/core/dtypes/common.py in get_dtype(arr_or_dtype)
   1631         arr_or_dtype = arr_or_dtype.dtype
   1632 
-> 1633     return pandas_dtype(arr_or_dtype)
   1634 
   1635 

~/scipy/pandas/pandas/core/dtypes/common.py in pandas_dtype(dtype)
   1823     # raise a consistent TypeError if failed
   1824     try:
-> 1825         npdtype = np.dtype(dtype)
   1826     except SyntaxError as err:
   1827         # np.dtype uses `eval` which can raise SyntaxError

~/miniconda3/envs/dev/lib/python3.7/site-packages/numpy/core/_internal.py in _commastring(astr)
    177                     raise ValueError(
    178                         'format number %d of "%s" is not recognized' %
--> 179                         (len(result)+1, astr))
    180                 startindex = mo.end()
    181 

ValueError: format number 1 of "b'0 - Name'" is not recognized
``` You mean catching the numpy error? I didn't check exactly what it would entail to fix it, but `is_bool_dtype` is a function that we control ourselves, so we can ensure it returns False for this case, instead of erroring. 
But yeah, since we are already catching errors when trying to create a numpy dtype, we might need to catch some more errors Yeah, this works too. Thx nice teamwork! @phofl can you add a test specific to is_bool_dtype Done thanks @phofl  @meeseeksdev backport 1.2.x