Repository: PrefectHQ/prefect

Issue:
Reading s3 targeted result fails when re-running a Flow
## Description
Reading a cached/targeted result  from s3 fails when re-running a Flow.

## Reproduction
#### Code
```
import prefect
print(prefect.__version__)

from prefect import task, Flow
from prefect.engine.results import S3Result

@task(target="{task_name}-{today}")
def extract():
    return [1, 2, 3]

@task(target="{task_name}-{today}")
def transform(data):
    return [i * 10 for i in data]

@task
def load(data):
    print("Here's your data: {}".format(data))

with Flow("ETL", result=S3Result(bucket="MY_BUCKET")) as flow:
    e = extract()
    t = transform(e)
    l = load(t)

flow.run()
```

### Output
Run once -> Writes to s3 fine
```

0.11.2
[2020-05-21 05:13:44] INFO - prefect.FlowRunner | Beginning Flow run for 'ETL'
[2020-05-21 05:13:44] INFO - prefect.FlowRunner | Starting flow run.
[2020-05-21 05:13:44] INFO - prefect.TaskRunner | Task 'extract': Starting task run...
[2020-05-21 05:13:44] INFO - prefect.TaskRunner | Task 'extract': finished task run for task with final state: 'Success'
[2020-05-21 05:13:44] INFO - prefect.TaskRunner | Task 'transform': Starting task run...
[2020-05-21 05:13:45] INFO - prefect.TaskRunner | Task 'transform': finished task run for task with final state: 'Success'
[2020-05-21 05:13:45] INFO - prefect.TaskRunner | Task 'load': Starting task run...
Here's your data: [10, 20, 30]
[2020-05-21 05:13:45] INFO - prefect.TaskRunner | Task 'load': finished task run for task with final state: 'Success'
[2020-05-21 05:13:45] INFO - prefect.FlowRunner | Flow run SUCCESS: all reference tasks succeeded
```

Fails reading on the second run
```
0.11.2
[2020-05-21 05:14:09] INFO - prefect.FlowRunner | Beginning Flow run for 'ETL'
[2020-05-21 05:14:09] INFO - prefect.FlowRunner | Starting flow run.
[2020-05-21 05:14:09] INFO - prefect.TaskRunner | Task 'extract': Starting task run...
[2020-05-21 05:14:09] ERROR - prefect.S3Result | Unexpected error while reading from S3: AttributeError("'dict' object has no attribute 'load'")
Traceback (most recent call last):
  File "/home/ilivni/miniconda3/envs/py37moc/lib/python3.7/site-packages/prefect/engine/results/s3_result.py", line 167, in exists
    Bucket=self.bucket, Key=location.format(**kwargs)
AttributeError: 'dict' object has no attribute 'load'
[2020-05-21 05:14:09] ERROR - prefect.TaskRunner | Unexpected error: AttributeError("'dict' object has no attribute 'load'")
Traceback (most recent call last):
  File "/home/ilivni/miniconda3/envs/py37moc/lib/python3.7/site-packages/prefect/engine/runner.py", line 48, in inner
    new_state = method(self, state, *args, **kwargs)
  File "/home/ilivni/miniconda3/envs/py37moc/lib/python3.7/site-packages/prefect/engine/task_runner.py", line 651, in check_target
    if result.exists(target, **prefect.context):
  File "/home/ilivni/miniconda3/envs/py37moc/lib/python3.7/site-packages/prefect/engine/results/s3_result.py", line 167, in exists
    Bucket=self.bucket, Key=location.format(**kwargs)
AttributeError: 'dict' object has no attribute 'load'

```


Discussion:

Resolving patch:
diff --git a/src/prefect/engine/results/s3_result.py b/src/prefect/engine/results/s3_result.py
--- a/src/prefect/engine/results/s3_result.py
+++ b/src/prefect/engine/results/s3_result.py
@@ -163,9 +163,7 @@ def exists(self, location: str, **kwargs: Any) -> bool:
         import botocore
 
         try:
-            self.client.get_object(
-                Bucket=self.bucket, Key=location.format(**kwargs)
-            ).load()
+            self.client.get_object(Bucket=self.bucket, Key=location.format(**kwargs))
         except botocore.exceptions.ClientError as exc:
             if exc.response["Error"]["Code"] == "NoSuchKey":
                 return False


Test patch: